import 'dart:io';

import 'package:flutter/material.dart';
import 'package:wanchong/widget/app_bar.dart';
import 'package:image_picker/image_picker.dart';
// import 'package:amap_location/amap_location.dart';
// import 'package:simple_permissions/simple_permissions.dart';
import 'package:flutter_cupertino_date_picker/flutter_cupertino_date_picker.dart';
import 'package:wanchong/path.dart';
import 'package:wanchong/api/user.dart';
import 'package:wanchong/bean/login_go_entity.dart';
import 'package:wanchong/utils/http.dart';
import 'package:wanchong/utils/common.dart'; 
import 'package:wanchong/utils/upload.dart';
import 'dart:convert';
import 'package:wanchong/bean/set_password_entity.dart';

class Means extends StatefulWidget {
  @override
  _MeansState createState() => _MeansState();
}

const String MIN_DATETIME = '1970-01-01';
const String MAX_DATETIME = '2019-12-31';
const String INIT_DATETIME = '2019-05-17';

class _MeansState extends State<Means> {
  void initState() {
    super.initState();
    // AMapLocationClient.setApiKey("你的key");
    // initAmap();
    // print("Login init");
    // _controller.selection = ;
    // _controller = TextEditingController();
    // _controller.addListener(listener);
  }

  bool getter = false;
  bool _showTitle = true;
  DateTimePickerLocale _locale = DateTimePickerLocale.zh_cn;
  String _format = 'yyyy-MMMM-dd';
  TextEditingController controller = TextEditingController();
  PageController _pageController = PageController();
  // AMapLocation _loc;

  String _image;
  DateTime _dateTime;
  bool man = true;
  bool complatedData = false;
  bool allComplated = false;
  int birthday = 0;
  var e1 = '成都';
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomPadding: false,
      appBar: MyAppBar(
        child: Align(
          alignment: Alignment.centerRight,
          child: GestureDetector(
            onTap: () {
              Navigator.of(context).pushNamed(HomePath);
            },
            child: Container(
              padding: EdgeInsets.only(right: 20.0),
              child: Text(
                "跳过",
                style: TextStyle(color: Color(0xFF3C4450), fontSize: 15.0),
              ),
            ),
          ),
        ),
      ),
      body: PageView(
        controller: _pageController,
        physics: NeverScrollableScrollPhysics(),
        children: <Widget>[pageData(), pagePos()],
      ),
    );
  }

  Widget pageData() {
    return Container(
      padding: EdgeInsets.only(left: 46.0, right: 46.0),
      color: Color(0xFFFFFFFF),
      child: Column(
        children: <Widget>[
          SizedBox(
            height: 20.0,
          ),
          Text(
            "完善个人信息",
            style: TextStyle(
              color: Color(0xFF3C4450),
              fontSize: 24.0,
              fontWeight: FontWeight.w700,
            ),
          ),
          SizedBox(
            height: 35.0,
          ),
          GestureDetector(
            onTap: () {
              getImage();
            },
            child: Container(
              width: 90.0,
              height: 90.0,
              child: ClipOval(
                child: _image == null
                    ? Image.asset("assets/user/wsxx_head_portrait_icon.png")
                    : Image.network(_image),
              ),
            ),
          ),
          SizedBox(
            height: 15.0,
          ),
          Text(
            "上传头像",
            style: TextStyle(
              color: Color(0xFF647280),
              fontSize: 18.0,
            ),
          ),
          SizedBox(
            height: 20.0,
          ),
          TextField(
            textAlign: TextAlign.center,
            controller: controller,
            maxLength: 8,
            style: TextStyle(color: Color(0xFF424D59), fontSize: 24.0),
            keyboardType: TextInputType.text,
            decoration: InputDecoration(
              counterText: "",
              contentPadding: const EdgeInsets.symmetric(vertical: 4.0),
              border: InputBorder.none,
              hintText: "给自己取个霸气的昵称",
              hintStyle: TextStyle(
                color: Color(0xFFDBDBDB),
                fontSize: 18.0,
              ),
            ),
            onChanged: (text) {
              setState(() {
                complatedData = _image != null && text.length > 0;
              });
            },
          ),
          SizedBox(
            height: 10.0,
          ),
          Divider(
            color: Color(0xFFDDDDDD),
            height: 1.0,
          ),
          SizedBox(
            height: 40.0,
          ),
          Text(
            "选择您的性别",
            style: TextStyle(
              color: Color(0xFF647280),
              fontSize: 18.0,
            ),
          ),
          SizedBox(
            height: 30.0,
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: <Widget>[
              GestureDetector(
                onTap: () {
                  if (!man) {
                    setState(() {
                      man = true;
                    });
                  }
                },
                child: Container(
                  width: 70.0,
                  height: 70.0,
                  child: Image.asset(man
                      ? "assets/user/wsxx_sex_icon_man_a.png"
                      : "assets/user/wsxx_sex_icon_man_b.png"),
                ),
              ),
              GestureDetector(
                onTap: () {
                  if (man) {
                    setState(() {
                      man = false;
                    });
                  }
                },
                child: Container(
                  width: 70.0,
                  height: 70.0,
                  child: Image.asset(man
                      ? "assets/user/wsxx_sex_icon_woman_b.png"
                      : "assets/user/wsxx_sex_icon_woman_a.png"),
                ),
              ),
            ],
          ),
          Expanded(
            child: Container(),
          ),
          GestureDetector(
            onTap: () {
              ///进入主页面
              ///
              _next();
             
            },
            child: ClipRRect(
              borderRadius: BorderRadius.circular(25.0),
              child: Container(
                alignment: Alignment.center,
                child: Text(
                  "确认",
                  style: TextStyle(color: Color(0xFFFFFFFF), fontSize: 18.0),
                ),
                color: complatedData ? Color(0xFFFFCC33) : Color(0xFFFFE599),
                height: 50.0,
              ),
            ),
          ),
          SizedBox(
            height: 50.0,
          )
        ],
      ),
    );
  }

  Widget pagePos() {
    return Container(
        padding: EdgeInsets.only(left: 46.0, right: 46.0),
        color: Color(0xFFFFFFFF),
        child: Column(
          children: <Widget>[
            SizedBox(
              height: 50,
            ),
            Text(
              "设置您的生日",
              style: TextStyle(
                color: Color(0xFF647280),
                fontSize: 18.0,
              ),
            ),
            SizedBox(
              height: 30.0,
            ),
            GestureDetector(
              onTap: () {
                _showDatePicker();
              },
              child: Text(
                _dateTime == null
                    ? "1995年01月01日"
                    : _dateTime.year.toString() +
                        "年" +
                        _dateTime.month.toString() +
                        "月" +
                        _dateTime.day.toString() +
                        "日",
                style: TextStyle(
                  color: Color(0xFF424D59),
                  fontSize: 24.0,
                ),
              ),
            ),
            SizedBox(
              height: 10.0,
            ),
            Divider(
              color: Color(0xFFDDDDDD),
              height: 1.0,
            ),
            SizedBox(
              height: 80.0,
            ),
            Text(
              "您所在的城市",
              style: TextStyle(
                color: Color(0xFF647280),
                fontSize: 18.0,
              ),
            ),
            SizedBox(
              height: 40.0,
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Container(
                  padding: EdgeInsets.only(right: 5.0),
                  height: 25.0,
                  //width: 233.0,
                  child: Text(
                    "成都",
                    style: TextStyle(
                      color: Colors.black,
                      fontSize: 18.0,
                    ),
                  ),
                  //   child: Image.asset(_loc == null
                  //       ? "assets/user/wsxx_location_icon_a.png"
                  //       : "assets/user/wsxx_location_icon_b.png"),
                  // ),
                  // _loc == null
                  //     ? Text(
                  //         "获取您的定位",
                  //         style: TextStyle(
                  //           color: Color(0xFFDBDBDB),
                  //           fontSize: 18.0,
                  //         ),
                  //       )
                  //     : Text(
                  //         _loc.province + _loc.city,
                  //         style: TextStyle(
                  //           color: Color(0xFF424D59),
                  //           fontSize: 24.0,
                  //         ),
                  //       ),
                )
              ],
            ),
            SizedBox(
              height: 40.0,
            ),
            GestureDetector(
              onTap: () {
                if (!getter) {
                  _checkPersmission();
                }
              },
              child: Text(
                "点击获取当前所在城市",
                style: TextStyle(color: Color(0xFFB4BEC6), fontSize: 12.0),
              ),
            ),
            SizedBox(
              height: 40.0,
            ),
            Expanded(
              child: Container(),
            ),
            GestureDetector(
              onTap: () {
                ///进入主页面
                ///
                //_next();
                updateMean(
                        _image, controller.text, man ? 1 : 2, birthday, this.e1)
                    .listen((SetPasswordEntity data) {
                  if (data.code == 200) {
                    alert('添加成功');
                     Future.delayed(Duration(seconds: 1), () {
                        Navigator.pushNamedAndRemoveUntil(
                            context, HomePath, (Route<dynamic> route) => false);
                      });
                  }
                }).onError((err) {
                  MyError e = err;
                  alert(e.message);
                });
              },
              child: ClipRRect(
                borderRadius: BorderRadius.circular(25.0),
                child: Container(
                  alignment: Alignment.center,
                  child: Text(
                    "完成",
                    style: TextStyle(color: Color(0xFFFFFFFF), fontSize: 18.0),
                  ),
                  color: allComplated ? Color(0xFFFFCC33) : Color(0xFFFFE599),
                  height: 50.0,
                ),
              ),
            ),
            SizedBox(
              height: 50.0,
            )
          ],
        ));
  }

  void _next() {
    _pageController.jumpToPage(1);
  }

  Future getImage() async {
    //var image = await ImagePicker.pickImage(source: ImageSource.gallery);
    // setState(() {
    //   _image = image;
    //   complatedData = image != null && controller.text.length > 0;
    // });

    var image = await ImagePicker.pickImage(source: ImageSource.gallery);
    FileUtils.getInstance().uploadFile(image, (data) {
      Map<String, dynamic> dataMap = json.decode(data);
      if (dataMap["code"] == 200) {
        print(dataMap["data"]);
        setState(() {
          _image = dataMap["data"];
          complatedData = image != null && controller.text.length > 0;
        });
      }
      // print(data);
    });
  }

  // Future<void> initAmap() async {
  //   // await
  //   await AMapLocationClient.startup(new AMapLocationOption(
  //       desiredAccuracy: CLLocationAccuracy.kCLLocationAccuracyHundredMeters));
  // }

  // @override
  // void dispose() {
  //   //注意这里关闭
  //   AMapLocationClient.shutdown();
  //   super.dispose();
  // }

  void _checkPersmission() async {
    if (getter) return;
    // bool hasPermission =
    //     await SimplePermissions.checkPermission(Permission.WhenInUseLocation);
    // if (!hasPermission) {
    //   PermissionStatus requestPermissionResult =
    //       await SimplePermissions.requestPermission(
    //           Permission.WhenInUseLocation);
    //   if (requestPermissionResult != PermissionStatus.authorized) {
    //     getter = false;
    //     // Alert.alert(context, title: "申请定位权限失败");
    //     return;
    //   }
    // }
    // AMapLocation loc = await AMapLocationClient.getLocation(true);
    // getter = false;
    // setState(() {
    //   allComplated = _loc!=null && _dateTime!=null;
    //   _loc = loc;
    // });
  }

  /// Display date picker.
  void _showDatePicker() {
    DatePicker.showDatePicker(
      context,
      pickerTheme: DateTimePickerTheme(
        showTitle: _showTitle,
        confirm: Text('custom Done', style: TextStyle(color: Colors.red)),
        cancel: Text('custom cancel', style: TextStyle(color: Colors.cyan)),
      ),
      minDateTime: DateTime.parse(MIN_DATETIME),
      maxDateTime: DateTime.parse(MAX_DATETIME),
      initialDateTime: _dateTime,
      dateFormat: _format,
      locale: _locale,
      // onCancel: () {
      //   debugPrint('onCancel');
      // },
      // onChange: (dateTime, List<int> index) {
      //   setState(() {
      //     _dateTime = dateTime;
      //   });
      // },
      onConfirm: (dateTime, List<int> index) {
        setState(() {
          _dateTime = dateTime;
          birthday = dateTime.millisecondsSinceEpoch ~/ 1000;
          // allComplated = _loc!=null && _dateTime!=null;
        });
      },
    );
  }
}




















// import 'dart:io';

// import 'package:flutter/material.dart';
// import 'package:wanchong/widget/app_bar.dart';
// import 'package:image_picker/image_picker.dart';
// //import 'package:amap_location/amap_location.dart';
// //import 'package:simple_permissions/simple_permissions.dart';
// import 'package:flutter_cupertino_date_picker/flutter_cupertino_date_picker.dart';
// import 'package:wanchong/path.dart';
// class Means extends StatefulWidget {
//   @override
//   _MeansState createState() => _MeansState();
// }
// const String MIN_DATETIME = '1970-01-01';
// const String MAX_DATETIME = '2019-12-31';
// const String INIT_DATETIME = '2019-05-17';
// class _MeansState extends State<Means> {
//   void initState() {
//     super.initState();
//     // AMapLocationClient.setApiKey("你的key");
//     // initAmap();
//     // print("Login init");
//     // _controller.selection = ;
//     // _controller = TextEditingController();
//     // _controller.addListener(listener);
//   }
//   bool getter = false;
//   bool _showTitle = true;
//   DateTimePickerLocale _locale = DateTimePickerLocale.zh_cn;
//   String _format = 'yyyy-MMMM-dd';
//   TextEditingController controller = TextEditingController();
//   PageController _pageController = PageController();
//   // AMapLocation _loc;
//   File _image;
//   DateTime _dateTime;
//   bool man = true;
//   bool complatedData = false;
//   bool allComplated = false;
//   @override
//   Widget build(BuildContext context) {
//     return Scaffold(
//       resizeToAvoidBottomPadding: false,
//       appBar: MyAppBar(
//         child: Align(
//           alignment: Alignment.centerRight,
//           child: GestureDetector(
//             onTap: () {
//               Navigator.of(context).pushNamed(HomePath);
//             },
//             child: Container(
//               padding: EdgeInsets.only(right: 20.0),
//               child: Text(
//                 "跳过",
//                 style: TextStyle(color: Color(0xFF3C4450), fontSize: 15.0),
//               ),
//             ),
//           ),
//         ),
//       ),
//       body: PageView(
//         controller: _pageController,
//         physics: NeverScrollableScrollPhysics(),
//         children: <Widget>[pageData(), pagePos()],
//       ),
//     );
//   }

//   Widget pageData() {
//     return Container(
//       padding: EdgeInsets.only(left: 46.0, right: 46.0),
//       color: Color(0xFFFFFFFF),
//       child: Column(
//         children: <Widget>[
//           SizedBox(
//             height: 20.0,
//           ),
//           Text(
//             "完善个人信息",
//             style: TextStyle(
//               color: Color(0xFF3C4450),
//               fontSize: 24.0,
//               fontWeight: FontWeight.w700,
//             ),
//           ),
//           SizedBox(
//             height: 35.0,
//           ),
//           GestureDetector(
//             onTap: () {
//               getImage();
//             },
//             child: Container(
//               width: 90.0,
//               height: 90.0,
//               child: ClipOval(
//                 child: _image == null
//                     ? Image.asset("assets/user/wsxx_head_portrait_icon.png")
//                     : Image.file(_image),
//               ),
//             ),
//           ),
//           SizedBox(
//             height: 15.0,
//           ),
//           Text(
//             "上传头像",
//             style: TextStyle(
//               color: Color(0xFF647280),
//               fontSize: 18.0,
//             ),
//           ),
//           SizedBox(
//             height: 20.0,
//           ),
//           TextField(
//             textAlign: TextAlign.center,
//             controller: controller,
//             style: TextStyle(color: Color(0xFF424D59), fontSize: 24.0),
//             keyboardType: TextInputType.text,
//             decoration: InputDecoration(
//               contentPadding: const EdgeInsets.symmetric(vertical: 4.0),
//               border: InputBorder.none,
//               hintText: "给自己取个霸气的昵称",
//               hintStyle: TextStyle(
//                 color: Color(0xFFDBDBDB),
//                 fontSize: 18.0,
//               ),
//             ),
//             onChanged: (text) {
//               setState(() {
//                 complatedData = _image != null && text.length > 0;
//               });
//             },
//           ),
//           SizedBox(
//             height: 10.0,
//           ),
//           Divider(
//             color: Color(0xFFDDDDDD),
//             height: 1.0,
//           ),
//           SizedBox(
//             height: 40.0,
//           ),
//           Text(
//             "选择您的性别",
//             style: TextStyle(
//               color: Color(0xFF647280),
//               fontSize: 18.0,
//             ),
//           ),
//           SizedBox(
//             height: 30.0,
//           ),
//           Row(
//             mainAxisAlignment: MainAxisAlignment.spaceAround,
//             children: <Widget>[
//               GestureDetector(
//                 onTap: () {
//                   if (!man) {
//                     setState(() {
//                       man = true;
//                     });
//                   }
//                 },
//                 child: Container(
//                   width: 70.0,
//                   height: 70.0,
//                   child: Image.asset(man
//                       ? "assets/user/wsxx_sex_icon_man_a.png"
//                       : "assets/user/wsxx_sex_icon_man_b.png"),
//                 ),
//               ),
//               GestureDetector(
//                 onTap: () {
//                   if (man) {
//                     setState(() {
//                       man = false;
//                     });
//                   }
//                 },
//                 child: Container(
//                   width: 70.0,
//                   height: 70.0,
//                   child: Image.asset(man
//                       ? "assets/user/wsxx_sex_icon_woman_b.png"
//                       : "assets/user/wsxx_sex_icon_woman_a.png"),
//                 ),
//               ),
//             ],
//           ),
//           Expanded(
//             child: Container(),
//           ),
//           GestureDetector(
//             onTap: () {
//               ///进入主页面
//               ///
//               _next();
//             },
//             child: ClipRRect(
//               borderRadius: BorderRadius.circular(25.0),
//               child: Container(
//                 alignment: Alignment.center,
//                 child: Text(
//                   "确认",
//                   style: TextStyle(color: Color(0xFFFFFFFF), fontSize: 18.0),
//                 ),
//                 color: complatedData ? Color(0xFFFFCC33) : Color(0xFFFFE599),
//                 height: 50.0,
//               ),
//             ),
//           ),
//           SizedBox(
//             height: 50.0,
//           )
//         ],
//       ),
//     );
//   }

//   Widget pagePos() {
//     return Container(
//         padding: EdgeInsets.only(left: 46.0, right: 46.0),
//         color: Color(0xFFFFFFFF),
//         child: Column(
//           children: <Widget>[
//             SizedBox(
//               height: 50,
//             ),
//             Text(
//               "设置您的生日",
//               style: TextStyle(
//                 color: Color(0xFF647280),
//                 fontSize: 18.0,
//               ),
//             ),
//             SizedBox(
//               height: 30.0,
//             ),
//             GestureDetector(
//               onTap: () {
//                 _showDatePicker();
//               },
//               child: Text(
//                 _dateTime==null?"1995年01月01日":_dateTime.year.toString()+"年"+_dateTime.month.toString()+"月"+_dateTime.day.toString()+"日",
//                 style: TextStyle(
//                   color: Color(0xFF424D59),
//                   fontSize: 24.0,
//                 ),
//               ),
//             ),
//             SizedBox(
//               height: 10.0,
//             ),
//             Divider(
//               color: Color(0xFFDDDDDD),
//               height: 1.0,
//             ),
//             SizedBox(
//               height: 80.0,
//             ),
//             Text(
//               "您所在的城市",
//               style: TextStyle(
//                 color: Color(0xFF647280),
//                 fontSize: 18.0,
//               ),
//             ),
//             SizedBox(
//               height: 40.0,
//             ),
//             Row(
//               mainAxisAlignment: MainAxisAlignment.center,
//               children: <Widget>[
//                 Container(
//                   padding: EdgeInsets.only(right: 5.0),
//                   height: 25.0,
//                   width: 25.0,
//                 //   child: Image.asset(_loc == null
//                 //       ? "assets/user/wsxx_location_icon_a.png"
//                 //       : "assets/user/wsxx_location_icon_b.png"),
//                 // ),
//                 // _loc == null
//                 //     ? Text(
//                 //         "获取您的定位",
//                 //         style: TextStyle(
//                 //           color: Color(0xFFDBDBDB),
//                 //           fontSize: 18.0,
//                 //         ),
//                 //       )
//                 //     : Text(
//                 //         _loc.province + _loc.city,
//                 //         style: TextStyle(
//                 //           color: Color(0xFF424D59),
//                 //           fontSize: 24.0,
//                 //         ),
//                 //       ),
//                 )
//               ],
//             ),
//             SizedBox(height: 40.0,),
//             GestureDetector(
//               onTap: () {
//                 if(!getter) {
//                   _checkPersmission();
//                 }
//               },
//               child: Text("点击获取当前所在城市",style: TextStyle(color: Color(0xFFB4BEC6),fontSize: 12.0),),
//             ),
//             SizedBox(height: 40.0,),
//             Expanded(child: Container(),),
//             GestureDetector(
//             onTap: () {
//               ///进入主页面
//               ///
//               _next();
//             },
//             child: ClipRRect(
//               borderRadius: BorderRadius.circular(25.0),
//               child: Container(
//                 alignment: Alignment.center,
//                 child: Text(
//                   "完成",
//                   style: TextStyle(color: Color(0xFFFFFFFF), fontSize: 18.0),
//                 ),
//                 color: allComplated ? Color(0xFFFFCC33) : Color(0xFFFFE599),
//                 height: 50.0,
//               ),
//             ),
//           ),
//           SizedBox(
//             height: 50.0,
//           )
//           ],
//         ));
//   }

//   void _next() {
//     _pageController.jumpToPage(1);
//   }

//   Future getImage() async {
//     var image = await ImagePicker.pickImage(source: ImageSource.gallery);
//     setState(() {
//       _image = image;
//       complatedData = image != null && controller.text.length > 0;
//     });
//   }

//   // Future<void> initAmap() async {
//   //   // await
//   //   await AMapLocationClient.startup(new AMapLocationOption(
//   //       desiredAccuracy: CLLocationAccuracy.kCLLocationAccuracyHundredMeters));
//   // }

//   // @override
//   // void dispose() {
//   //   //注意这里关闭
//   //   AMapLocationClient.shutdown();
//   //   super.dispose();
//   // }

//   void _checkPersmission() async {
//     if (getter) return;
//     // bool hasPermission =
//     //     await SimplePermissions.checkPermission(Permission.WhenInUseLocation);
//     // if (!hasPermission) {
//     //   PermissionStatus requestPermissionResult =
//     //       await SimplePermissions.requestPermission(
//     //           Permission.WhenInUseLocation);
//     //   if (requestPermissionResult != PermissionStatus.authorized) {
//     //     getter = false;
//     //     // Alert.alert(context, title: "申请定位权限失败");
//     //     return;
//     //   }
//     // }
//     // AMapLocation loc = await AMapLocationClient.getLocation(true);
//     // getter = false;
//     // setState(() {
//     //   allComplated = _loc!=null && _dateTime!=null;
//     //   _loc = loc;
//     // });
//   }

//   /// Display date picker.
//   void _showDatePicker() {
//     DatePicker.showDatePicker(
//       context,
//       pickerTheme: DateTimePickerTheme(
//         showTitle: _showTitle,
//         confirm: Text('custom Done', style: TextStyle(color: Colors.red)),
//         cancel: Text('custom cancel', style: TextStyle(color: Colors.cyan)),
//       ),
//       minDateTime: DateTime.parse(MIN_DATETIME),
//       maxDateTime: DateTime.parse(MAX_DATETIME),
//       initialDateTime: _dateTime,
//       dateFormat: _format,
//       locale: _locale,
//       // onCancel: () {
//       //   debugPrint('onCancel');
//       // },
//       // onChange: (dateTime, List<int> index) {
//       //   setState(() {
//       //     _dateTime = dateTime;
//       //   });
//       // },
//       onConfirm: (dateTime, List<int> index) {
//         setState(() {
//           _dateTime = dateTime;
//           // allComplated = _loc!=null && _dateTime!=null;
//         });
//       },
//     );
//   }
// }
